using System.Collections.Generic;

namespace OracleInternal.SqlAndPlsqlParser.LocalParsing.Ansi
{
	internal abstract class OracleLpBaseAnsiJoinClauseNoCondition : OracleLpBaseAnsiJoinClause
	{
		protected OracleLpTablePrimary m_vTablePrimary;

		internal override OracleLpJoinClauseConditionalType ConditionalType => OracleLpJoinClauseConditionalType.NoCondition;

		public override List<OracleLpColumnDescriptor> ColumnDescriptors => m_vTablePrimary.ColumnDescriptors;

		public OracleLpTablePrimary TablePrimary
		{
			get
			{
				return m_vTablePrimary;
			}
			set
			{
				m_vTablePrimary = value;
				if (m_vTablePrimary != null)
				{
					m_vTablePrimary.Parent = this;
				}
			}
		}

		internal override List<OracleLpTablePrimary> TablePrimaryList
		{
			get
			{
				if (m_vTablePrimaryList == null)
				{
					m_vTablePrimaryList = new List<OracleLpTablePrimary>(1);
					m_vTablePrimaryList.Add(m_vTablePrimary);
				}
				return m_vTablePrimaryList;
			}
		}

		public OracleLpBaseAnsiJoinClauseNoCondition(OracleLpFromListTerm ft)
			: base(ft)
		{
		}

		public override void RetrieveNamedObjectReferences(OracleLpStatement statement)
		{
			m_vTablePrimary.RetrieveNamedObjectReferences(statement);
		}
	}
}
